]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
network: don't use active connections that are in invalid states
authorGiovanni Campagna <gcampagna@src.gnome.org>
Wed, 8 May 2013 21:54:32 +0000 (23:54 +0200)
committerGiovanni Campagna <gcampagna@src.gnome.org>
Wed, 8 May 2013 21:58:53 +0000 (23:58 +0200)
Only ACTIVE or ACTIVATING connections are important when deciding
what icon to show, don't fallback on any, possibly invalid or deactivating,
active connection object.

https://bugzilla.gnome.org/show_bug.cgi?id=676285

js/ui/status/network.js

index 5852fcfaaa0c854db573628f09b2ae6b37eac176..6df61c3c685c010d744f80d76866d92be3724dce 100644 (file)
@@ -1904,6 +1904,7 @@ const NMApplet = new Lang.Class({
         let default_ip4 = null;
         let default_ip6 = null;
         let active_vpn = null;
+        let active_any = null;
         for (let i = 0; i < this._activeConnections.length; i++) {
             let a = this._activeConnections[i];
 
@@ -1934,10 +1935,15 @@ const NMApplet = new Lang.Class({
             if (a.default6)
                 default_ip6 = a;
 
-            if (a._type == 'vpn')
-                active_vpn = a;
-            else if (a.state == NetworkManager.ActiveConnectionState.ACTIVATING)
+            if (a.state == NetworkManager.ActiveConnectionState.ACTIVATING)
                 activating = a;
+            else if (a.state == NetworkManager.ActiveConnectionState.ACTIVE)
+                active_any = a;
+
+            if (a._type == 'vpn' &&
+                (a.state == NetworkManager.ActiveConnectionState.ACTIVATING ||
+                 a.state == NetworkManager.ActiveConnectionState.ACTIVE))
+                active_vpn = a;
 
             if (!a._primaryDevice) {
                 if (a._type != NetworkManager.SETTING_VPN_SETTING_NAME) {
@@ -1965,7 +1971,7 @@ const NMApplet = new Lang.Class({
             }
         }
 
-        this._mainConnection = activating || default_ip4 || default_ip6 || this._activeConnections[0] || null;
+        this._mainConnection = activating || default_ip4 || default_ip6 || active_any || null;
         this._vpnConnection = active_vpn;
     },